
class Statistik():#
	'''
		Die Klasse Statistik erstellt eine Auswertung nach folgenden Kriterien:
	
			1. Wieviele Server wurden insgesamt untersucht
			2. Wieviele Server nutzen RSA als Verschluesselung
			3. Wieviele Server nutzen die gleiche Schluessellaenge
			4. Anzahl der Server pro RSA-Exponent e (3,17,65537, andere)


	'''
	def __init__(self):
		self.serverCount = 0
		self.rsa = '"rsaEncryption"'
		self.rsaCount = 0
		self.schluesselCount = 0
		self.key = set()
		self.pka = {}
		self.exponent = {}
			
	def auswertung(self):#
		'''
		In dieser Funktion werden die benoetigten Daten aus einer CSV - Datei zeilenweise 
		eingelesen und die Auswertung erstellt.
		'''
		
		csv = open("daten.csv")
		
		for line in csv:
			self.serverCount +=1
			
			auswertung = line.split(",")
			
			if  self.rsa == auswertung[1] :
				self.rsaCount +=1
				
			try:
				self.pka[auswertung[2]] += 1
			except KeyError:
				self.pka[auswertung[2]] = 1
			
			
			try:
				self.exponent[auswertung[4]] += 1
			except KeyError:
				self.exponent[auswertung[4]] = 1	
			
		print "Anzahl der untersuchten Server: " +  str(self.serverCount)
		print "Anzahl der Server, die RSA verwenden: " + str(self.rsaCount)
		
		
		keylength = self.pka.keys()
		for k in keylength:
			print "Anzahl der Server mit Schluessellange %s : %d" %(k.strip()	, self.pka[k])
		
		
		expo = self.exponent.keys()
		for e in expo:
			print "Anzahl der Server mit Exponenten %s : %d" %(e.strip(),    self.exponent[e]) 
		
		



if __name__ == "__main__":
	t = Statistik()
	
	t.auswertung()
